def i32_to_u8_array(value: int, little_endian=True) -> list:
    """
    将 i32 整数（包括负数）转换为 u8 数组

    参数:
        value: 要转换的整数，范围应在 -2^31 到 2^31-1 之间
        little_endian: 是否使用小端序（默认True）

    返回:
        包含4个u8整数的列表
    """
    if not -(2**31) <= value < 2**31:
        raise ValueError("数值超出i32范围")

    # 转换为4字节的bytes对象
    byte_data = value.to_bytes(
        4, byteorder="little" if little_endian else "big", signed=True
    )

    # 将bytes转换为u8整数列表
    return list(byte_data)
